spring mvc 流程

什么是spring mvc

  Spring MVC本质上还是一个Servlet,他封装了一套通用的方案,使得我们开发时只需要写核心的业务逻辑,不需要写Servlet。而Servlet也是对底层Socket的封装,使得我们开发变得简单。

一个简单mvc 流程

  • 首先浏览器向服务器发送一个请求。
  • 服务器接受到连接创建一个socket线程和浏览器建立连接,紧接着创建request,reponse对象,然后交接给Servlet容器。
  • 打断下,预先知识,DispatcherServlet类继承实现 FrameworkServlet抽象类, FrameworkServlet抽象类继承HttpServlet抽象类。HttpServlet抽象类最终实现Servlet接口,因此最顶级的接口是Servlet接口。
  • 下面说的方法本质上都是DispatcherServlet类的,然后进入service方法( FrameworkServlet抽象类实现的),然后调用父类的service方法(HttpServlet),在这个方法里面从HttpServletRequest对象里面获取到http请求方式,比如get,post等,在这些方法里面。统一调用了processRequest方法(FrameworkServlet抽象类实现的)在这个方法里面,LocaleContext,ServletRequestAttributes这2个从HttpServletRequest对象取出来,放到其上下文里面去。
  • 然后进入doService方法,在这个方法里面设置了诸如上下文,等信息到request对象里面,然后请求传递走到doDispatch方法里面了。
  • 先调用checkMultipart方法判断是否上传请求。然后调用getHandler方法来获取handle,进入RequestMappingHandlerMapping.getHandler方法来获取handle.